package com.nineclock.system.service;


import com.nineclock.system.dto.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface SysCompanyService {

    SysCompanyDTO queryCompanyInfo();

    String uploadCompanyLogo(MultipartFile file) throws IOException;

    void updateCompanyInfo(SysCompanyDTO sysCompanyDTO);

    /**
     * @Author: lenovo
     * @Date: 16:15 2021/7/6
     * @Parms []
     * @ReturnType: com.nineclock.system.dto.SysCompanyUserDTO
     * @Description: 获取当前企业用户
    */
    SysCompanyUserDTO getCurrentAdmin();

    /**
     * @Author: lenovo
     * @Date: 16:14 2021/7/6
     * @Parms [sysChangeMainManagerDTO]
     * @ReturnType: void
     * @Description: 更新企业系统管理员的用户
    */
    void changeSysAdmin(SysChangeMainManagerDTO sysChangeMainManagerDTO);

    /**
     * @Author: lenovo
     * @Date: 17:21 2021/7/6
     * @Parms [keyword]
     * @ReturnType: java.util.List<com.nineclock.system.dto.SysCompanyDTO>
     * @Description: 根据关键字模糊查询企业名字
    */
    List<SysCompanyDTO> queryCompanyByName(String keyword);

    /**
     * @Author: lenovo
     * @Date: 16:27 2021/7/7
     * @Parms [sysApplyJoinCompanyUserDTO]
     * @ReturnType: void
     * @Description: 申请加入企业
    */
    void applyJoinCompany(SysApplyJoinCompanyUserDTO sysApplyJoinCompanyUserDTO);

    /**
     * @Author: lenovo
     * @Date: 16:27 2021/7/7
     * @Parms [sysAllowedJoinCompanyUserDTO]
     * @ReturnType: void
     * @Description: 审核加入企业
    */
    void allowedJoinCompany(SysAllowedJoinCompanyUserDTO sysAllowedJoinCompanyUserDTO);

    /**
     * 根据用户id查询企业列表
     */
    List<SysCompanyDTO> queryCompanyListByUserId(Long userId);
}
